package com.cruise.game.service.user;

import com.cruise.game.model.vo.common.PageResult;
import com.cruise.game.model.vo.user.FavoriteVO;

/**
 * 收藏服务接口
 * 
 * @author cruise
 * @date 2025-02-28
 */
public interface FavoriteService {

    /**
     * 添加收藏
     *
     * @param userId    用户ID
     * @param serviceId 服务ID
     * @return 是否成功
     */
    boolean addFavorite(Long userId, Long serviceId);

    /**
     * 取消收藏
     *
     * @param userId    用户ID
     * @param serviceId 服务ID
     * @return 是否成功
     */
    boolean cancelFavorite(Long userId, Long serviceId);

    /**
     * 获取收藏列表
     *
     * @param userId   用户ID
     * @param page     页码
     * @param pageSize 每页条数
     * @return 收藏列表
     */
    PageResult<FavoriteVO> getFavoriteList(Long userId, Integer page, Integer pageSize);

    /**
     * 检查是否已收藏
     *
     * @param userId    用户ID
     * @param serviceId 服务ID
     * @return 是否已收藏
     */
    boolean isFavorite(Long userId, Long serviceId);
}
